Git‘te Branching(Dallanma) Nedir?
Git branch (dallanma), modern yazılım geliştirme süreçlerinde en kritik kavramlardan biridir. Aynı proje üzerinde farklı geliştirmeleri birbirinden bağımsız şekilde yapmanızı sağlar.
Bu rehberde Git branching mantığını, Git’in verileri nasıl sakladığını, branch oluşturma ve branch değiştirme işlemlerini sade ve anlaşılır şekilde öğreneceksiniz.
Git Branch Nedir?
Git’te branch (dal), bir commit’e işaret eden hareketli bir pointer’dır. Yani aslında branch, kodun bir kopyası değil, commit zincirini gösteren bir referanstır.
Bu sayede ana geliştirme hattını bozmadan yeni özellikler geliştirebilir, hataları izole şekilde çözebilir ve paralel geliştirme yapabilirsiniz.
Git Verileri Nasıl Saklar?
Git, verileri değişiklikler olarak değil, anlık görüntüler (snapshot) olarak saklar. Her commit, o anki dosya durumunun bir fotoğrafı gibidir.
Commit oluşturulduğunda Git şu bilgileri saklar:
- Dosyaların anlık görüntüsü
- Commit mesajı
- Yazar bilgisi
- Önceki commit’e referans
git add README
git commit -m "initial commit"
Her yeni commit, bir önceki commit’e işaret eder ve bu şekilde bir zincir oluşur.
Branch Nasıl Oluşturulur?
Git’te yeni bir branch oluşturmak oldukça basittir. Yeni bir branch oluşturduğunuzda aslında yeni bir pointer oluşturmuş olursunuz.
git branch testing
Bu komut sadece branch oluşturur, ancak aktif branch’i değiştirmez.
HEAD Nedir?
Git, hangi branch üzerinde olduğunuzu anlamak için HEAD adında özel bir pointer kullanır.
HEAD, şu an aktif olan branch’i gösterir. Yeni commit yaptığınızda HEAD’in gösterdiği branch ilerler.
git log --oneline --decorate
Bu komut ile HEAD’in hangi branch’i gösterdiğini görebilirsiniz.
Branch Değiştirme
Mevcut bir branch’e geçmek için aşağıdaki komut kullanılır:
git checkout testing
Bu işlem:
- HEAD pointer’ını değiştirir
- Çalışma dizinini ilgili commit’e göre günceller
Tekrar ana dala dönmek için:
git checkout main
Branch Mantığını Anlamak
Branch’ler sayesinde farklı geliştirmeler birbirinden izole şekilde ilerler. Örneğin:
- Feature geliştirme
- Bug fix
- Deneysel kodlar
Farklı branch’lerde yapılan değişiklikler bağımsızdır ve daha sonra birleştirilebilir (merge).
git log --oneline --decorate --graph --all
Bu komut branch geçmişini görsel olarak incelemenizi sağlar.
Sık Yapılan Hatalar
- Branch oluşturup checkout yapmayı unutmak
- Yanlış branch üzerinde commit yapmak
- Merge öncesi değişiklikleri kontrol etmemek
- Branch isimlendirmesini düzensiz yapmak
Sık Sorulan Sorular
Git branch nedir?
Commit’lere işaret eden bir pointer’dır ve paralel geliştirme yapmayı sağlar.
git branch ile git checkout farkı nedir?
git branch sadece oluşturur, git checkout ise branch değiştirir.
HEAD nedir?
Aktif branch’i gösteren pointer’dır.
Branch neden kullanılır?
Ana kodu bozmadan yeni özellikler geliştirmek için kullanılır.
Sonuç
Git branching sistemi, modern yazılım geliştirme süreçlerinin temel taşlarından biridir. Doğru kullanıldığında hem ekip çalışmasını hızlandırır hem de kod kalitesini artırır.
Branch mantığını iyi anlamak, Git’i verimli kullanmanın en önemli adımlarından biridir.